TEST_PATH = ./test
SRC_PATH = ./src
OUTPUT_PATH = ./output

sha256:
	iverilog -o $(OUTPUT_PATH)/sha256 $(TEST_PATH)/sha256_tb.v $(SRC_PATH)/sha256.v $(SRC_PATH)/padding.v $(SRC_PATH)/compression.v $(SRC_PATH)/right_rotate.v $(SRC_PATH)/trigger.v
	vvp $(OUTPUT_PATH)/sha256

compression:
	iverilog -o $(OUTPUT_PATH)/compression $(TEST_PATH)/compression_tb.v $(SRC_PATH)/compression.v $(SRC_PATH)/right_rotate.v $(SRC_PATH)/trigger.v
	vvp $(OUTPUT_PATH)/compression

padding:
	iverilog -o $(OUTPUT_PATH)/padding $(TEST_PATH)/padding_tb.v $(SRC_PATH)/padding.v
	vvp $(OUTPUT_PATH)/padding

trigger:
	iverilog -o $(OUTPUT_PATH)/trigger $(TEST_PATH)/trigger_tb.v $(SRC_PATH)/trigger.v
	vvp $(OUTPUT_PATH)/trigger

right_rotate:
	iverilog -o $(OUTPUT_PATH)/right_rotate $(TEST_PATH)/right_rotate_tb.v $(SRC_PATH)/right_rotate.v
	vvp $(OUTPUT_PATH)/right_rotate

